#ifndef __EJ_BSP_GPIO__
#define __EJ_BSP_GPIO__

#include "common_def.h"

typedef enum
{
	E_BSP_GPIO_INPUT,
	E_BSP_GPIO_OUTPUT,
	E_BSP_DIR_MAX,
}BspGpioDir_e;


typedef enum
{
	E_BSP_GPIO_NOPULL,
	E_BSP_GPIO_PULLUP,
	E_BSP_GPIO_PULLDOWN,
	E_BSP_PULL_MAX,
}BspGpioPull_e;

typedef enum
{
    E_BSP_GPIO_EXTI_RISE,
    E_BSP_GPIO_EXTI_FALL,
    E_BSP_GPIO_EXTI_BOTH,
    E_BSP_GPIO_EXTI_HIGH,
    E_BSP_GPIO_EXTI_LOW,
    E_BSP_GPIO_EXIT_TRIG_INVALID
} BspGpioExtiTrig_e;

/* ------For high-level code -------*/

int eBspGpioReadPin(uint32_t pio);
void eBspGpioWritePin(uint32_t pio, uint8_t status);
void eBspGpioConfig(uint32_t pio, BspGpioDir_e dir, BspGpioPull_e pull);

/* ------ For low-level code ------------ */


#endif  /*__EJ_BSP_GPIO__*/
